Defining metrics thresholds for ranges using a parameterized line of text synchronized with an interactive display

ABSTRACT

A mechanism is provided in a data processing system for defining metrics thresholds. The mechanism presents a flexible sentence structure in a user interface. The flexible sentence structure includes a plurality of parameters for defining an alert for a selected data cell. The parameters include an intersect name of the selected data cell, a threshold range type, and one or more alert threshold values. The mechanism presents an interactive graphical display in the user interface. The interactive graphical display includes a plurality of range bands and one or more threshold value indicators corresponding to the parameters of the flexible sentence structure. The mechanism makes changes to the flexible sentence structure and the interactive graphical display responsive to a user interaction to form a metrics threshold definition. The mechanism generates code that creates alerts according to the metrics threshold definition.

BACKGROUND

The present application relates generally to an improved data processingapparatus and method and more specifically to mechanisms for definingmetrics threshold for ranges using a parameterized line of textsynchronized with an interactive display.

Analytics is the discovery and communication of meaningful patterns indata. Especially valuable in areas rich with recorded information,analytics relies on the simultaneous application of statistics, computerprogramming, and operations research to quantify performance. Analyticsoften favors data visualization to communicate insight. Firms maycommonly apply analytics to business data to describe, predict, andimprove business performance. Specifically, areas within analyticsinclude predictive analytics, enterprise decision management, retailanalytics, store assortment and stock-keeping unit optimization,marketing optimization and marketing mix modeling, web analytics, salesforce sizing and optimization, price and promotion modeling, predictivescience, credit risk analysis, and fraud analytics. Since analytics canrequire extensive computation, the algorithms and software used foranalytics harness the most current methods in computer science,statistics, and mathematics.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described herein in the DetailedDescription. This Summary is not intended to identify key factors oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

In one illustrative embodiment, a method, in a data processing system,is provided for defining metrics thresholds. The method comprisespresenting a flexible sentence structure in a user interface. Theflexible sentence structure includes a plurality of parameters fordefining an alert for a selected data cell. The parameters include anintersect name of the selected data cell, a threshold range type, andone or more alert threshold values. The method further comprisespresenting an interactive graphical display in the user interface. Theinteractive graphical display includes a plurality of range bands andone or more threshold value indicators corresponding to the parametersof the flexible sentence structure. The method further comprises makingchanges to the flexible sentence structure and the interactive graphicaldisplay responsive to a user interaction to form a metrics thresholddefinition. The method further comprises generating code that createsalerts according to the metrics threshold definition.

In other illustrative embodiments, a computer program product comprisinga computer useable or readable medium having a computer readable programis provided. The computer readable program, when executed on a computingdevice, causes the computing device to perform various ones of, andcombinations of, the operations outlined above with regard to the methodillustrative embodiment.

In yet another illustrative embodiment, a system/apparatus is provided.The system/apparatus may comprise one or more processors and a memorycoupled to the one or more processors. The memory may compriseinstructions which, when executed by the one or more processors, causethe one or more processors to perform various ones of, and combinationsof, the operations outlined above with regard to the method illustrativeembodiment.

These and other features and advantages of the present invention will bedescribed in, or will become apparent to those of ordinary skill in theart in view of, the following detailed description of the exampleembodiments of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention, as well as a preferred mode of use and further objectivesand advantages thereof, will best be understood by reference to thefollowing detailed description of illustrative embodiments when read inconjunction with the accompanying drawings, wherein:

FIG. 1 is an example diagram of a distributed data processing system inwhich aspects of the illustrative embodiments may be implemented;

FIG. 2 is an example block diagram of a computing device in whichaspects of the illustrative embodiments may be implemented;

FIGS. 3A-3H show screens of display for a mechanism for defining metricsthresholds for ranges using a parameterized line of text synchronizedwith an interactive display in accordance with an illustrativeembodiment;

FIG. 4 is a block diagram of an alert system for defining metricsthresholds for ranges using a parameterized line of text synchronizedwith an interactive user interface in accordance with an illustrativeembodiment; and

FIG. 5 is a flowchart illustrating operation of an alert system fordefining metrics thresholds for ranges using a parameterized line oftext synchronized with an interactive user interface in accordance withan illustrative embodiment.

DETAILED DESCRIPTION

In Analytics systems, many users would like to monitor the status of keyvalues in their businesses. This important information is captured inmetrics, which are represented in many ways: notification messages oremails if a value threshold is reached, visualizations in a dashboard,trend and status indicators in charts and reports. For casual businessusers, it is not easy to define these metrics, because there are manyvariations of threshold ranges for which a user may wish to account. Inmost enterprise environments, it is the administrator who sets themetrics, often using software code, which provides the administrator alot of flexibility. However, casual business users typically do not havethe expertise to modify software code for defining complex metricsthresholds.

The illustrative embodiments provide an interactive user interface fordefining metrics thresholds for ranges using a parameterized line oftext. The illustrative embodiments use a flexible sentence structure todefine thresholds for a metric and moments for alerts for a given dataelement combined with an interactive graphical visualization of thethresholds and the in-between data spaces. The flexible sentencestructure changes as the user modifies parameters in either the sentenceitself or in the interactive graphical visualization. The interactivegraphical visualization can also change on changes in the flexiblesentence.

In the illustrative embodiments, the threshold values may be based ondata elements from the data set or specific values provided by the user.The user may use a time dimension in the data set to define thetime-to-date definition for trends. The user may add or remove colorbands that represent ranges from the interactive visualization, whichimpacts the flexible sentence. The illustrative embodiments allow a userto define metrics and thresholds in a visually interactive manner, whilestill allowing for permutations normally covered by coded systems.

Before beginning the discussion of the various aspects of theillustrative embodiments, it should first be appreciated that throughoutthis description the term “mechanism” will be used to refer to elementsof the present invention that perform various operations, functions, andthe like. A “mechanism,” as the term is used herein, may be animplementation of the functions or aspects of the illustrativeembodiments in the form of an apparatus, a procedure, or a computerprogram product. In the case of a procedure, the procedure isimplemented by one or more devices, apparatus, computers, dataprocessing systems, or the like. In the case of a computer programproduct, the logic represented by computer code or instructions embodiedin or on the computer program product is executed by one or morehardware devices in order to implement the functionality or perform theoperations associated with the specific “mechanism.” Thus, themechanisms described herein may be implemented as specialized hardware,software executing on general purpose hardware, software instructionsstored on a medium such that the instructions are readily executable byspecialized or general purpose hardware, a procedure or method forexecuting the functions, or a combination of any of the above.

The present description and claims may make use of the terms “a,” “atleast one of,” and “one or more of” with regard to particular featuresand elements of the illustrative embodiments. It should be appreciatedthat these terms and phrases are intended to state that there is atleast one of the particular feature or element present in the particularillustrative embodiment, but that more than one can also be present.That is, these terms/phrases are not intended to limit the descriptionor claims to a single feature/element being present or require that aplurality of such features/elements be present. To the contrary, theseterms/phrases only require at least a single feature/element with thepossibility of a plurality of such features/elements being within thescope of the description and claims.

Moreover, it should be appreciated that the use of the term “engine,” ifused herein with regard to describing embodiments and features of theinvention, is not intended to be limiting of any particularimplementation for accomplishing and/or performing the actions, steps,processes, etc., attributable to and/or performed by the engine. Anengine may be, but is not limited to, software, hardware and/or firmwareor any combination thereof that performs the specified functionsincluding, but not limited to, any use of a general and/or specializedprocessor in combination with appropriate software loaded or stored in amachine readable memory and executed by the processor. Further, any nameassociated with a particular engine is, unless otherwise specified, forpurposes of convenience of reference and not intended to be limiting toa specific implementation. Additionally, any functionality attributed toan engine may be equally performed by multiple engines, incorporatedinto and/or combined with the functionality of another engine of thesame or different type, or distributed across one or more engines ofvarious configurations.

In addition, it should be appreciated that the following descriptionuses a plurality of various examples for various elements of theillustrative embodiments to further illustrate example implementationsof the illustrative embodiments and to aid in the understanding of themechanisms of the illustrative embodiments. These examples intended tobe non-limiting and are not exhaustive of the various possibilities forimplementing the mechanisms of the illustrative embodiments. It will beapparent to those of ordinary skill in the art in view of the presentdescription that there are many other alternative implementations forthese various elements that may be utilized in addition to, or inreplacement of, the examples provided herein without departing from thespirit and scope of the present invention.

The illustrative embodiments may be utilized in many different types ofdata processing environments. In order to provide a context for thedescription of the specific elements and functionality of theillustrative embodiments, FIGS. 1 and 2 are provided hereafter asexample environments in which aspects of the illustrative embodimentsmay be implemented. It should be appreciated that FIGS. 1 and 2 are onlyexamples and are not intended to assert or imply any limitation withregard to the environments in which aspects or embodiments of thepresent invention may be implemented. Many modifications to the depictedenvironments may be made without departing from the spirit and scope ofthe present invention.

FIG. 1 depicts a pictorial representation of an example distributed dataprocessing system in which aspects of the illustrative embodiments maybe implemented. Distributed data processing system 100 may include anetwork of computers in which aspects of the illustrative embodimentsmay be implemented. The distributed data processing system 100 containsat least one network 102, which is the medium used to providecommunication links between various devices and computers connectedtogether within distributed data processing system 100. The network 102may include connections, such as wire, wireless communication links, orfiber optic cables.

In the depicted example, server 104 and server 106 are connected tonetwork 102 along with storage unit 108. In addition, clients 110, 112,and 114 are also connected to network 102. These clients 110, 112, and114 may be, for example, personal computers, network computers, or thelike. In the depicted example, server 104 provides data, such as bootfiles, operating system images, and applications to the clients 110,112, and 114. Clients 110, 112, and 114 are clients to server 104 in thedepicted example. Distributed data processing system 100 may includeadditional servers, clients, and other devices not shown.

In the depicted example, distributed data processing system 100 is theInternet with network 102 representing a worldwide collection ofnetworks and gateways that use the Transmission ControlProtocol/Internet Protocol (TCP/IP) suite of protocols to communicatewith one another. At the heart of the Internet is a backbone ofhigh-speed data communication lines between major nodes or hostcomputers, consisting of thousands of commercial, governmental,educational and other computer systems that route data and messages. Ofcourse, the distributed data processing system 100 may also beimplemented to include a number of different types of networks, such asfor example, an intranet, a local area network (LAN), a wide areanetwork (WAN), or the like. As stated above, FIG. 1 is intended as anexample, not as an architectural limitation for different embodiments ofthe present invention, and therefore, the particular elements shown inFIG. 1 should not be considered limiting with regard to the environmentsin which the illustrative embodiments of the present invention may beimplemented.

As shown in FIG. 1, one or more of the computing devices, e.g., server104, may be specifically configured to implement a mechanism fordefining metrics thresholds for ranges using a parameterized single lineof text synchronized with an interactive user interface. The configuringof the computing device may comprise the providing of applicationspecific hardware, firmware, or the like to facilitate the performanceof the operations and generation of the outputs described herein withregard to the illustrative embodiments. The configuring of the computingdevice may also, or alternatively, comprise the providing of softwareapplications stored in one or more storage devices and loaded intomemory of a computing device, such as server 104, for causing one ormore hardware processors of the computing device to execute the softwareapplications that configure the processors to perform the operations andgenerate the outputs described herein with regard to the illustrativeembodiments. Moreover, any combination of application specific hardware,firmware, software applications executed on hardware, or the like, maybe used without departing from the spirit and scope of the illustrativeembodiments.

It should be appreciated that once the computing device is configured inone of these ways, the computing device becomes a specialized computingdevice specifically configured to implement the mechanisms of theillustrative embodiments and is not a general purpose computing device.Moreover, as described hereafter, the implementation of the mechanismsof the illustrative embodiments improves the functionality of thecomputing device and provides a useful and concrete result thatfacilitates an analytics system with a mechanism for defining metricsthresholds for ranges using a parameterized line of text synchronizedwith an interactive user interface.

As noted above, the mechanisms of the illustrative embodiments utilizespecifically configured computing devices, or data processing systems,to perform the operations for defining metrics thresholds for rangesusing a parameterized line of text synchronized with an interactive userinterface. These computing devices, or data processing systems, maycomprise various hardware elements which are specifically configured,either through hardware configuration, software configuration, or acombination of hardware and software configuration, to implement one ormore of the systems/subsystems described herein. FIG. 2 is a blockdiagram of just one example data processing system in which aspects ofthe illustrative embodiments may be implemented. Data processing system200 is an example of a computer, such as server 104 in FIG. 1, in whichcomputer usable code or instructions implementing the processes andaspects of the illustrative embodiments of the present invention may belocated and/or executed so as to achieve the operation, output, andexternal affects of the illustrative embodiments as described herein.

In the depicted example, data processing system 200 employs a hubarchitecture including north bridge and memory controller hub (NB/MCH)202 and south bridge and input/output (I/O) controller hub (SB/ICH) 204.Processing unit 206, main memory 208, and graphics processor 210 areconnected to NB/MCH 202. Graphics processor 210 may be connected toNB/MCH 202 through an accelerated graphics port (AGP).

In the depicted example, local area network (LAN) adapter 212 connectsto SB/ICH 204. Audio adapter 216, keyboard and mouse adapter 220, modem222, read only memory (ROM) 224, hard disk drive (HDD) 226, CD-ROM drive230, universal serial bus (USB) ports and other communication ports 232,and PCI/PCIe devices 234 connect to SB/ICH 204 through bus 238 and bus240. PCI/PCIe devices may include, for example, Ethernet adapters,add-in cards, and PC cards for notebook computers. PCI uses a card buscontroller, while PCIe does not. ROM 224 may be, for example, a flashbasic input/output system (BIOS).

HDD 226 and CD-ROM drive 230 connect to SB/ICH 204 through bus 240. HDD226 and CD-ROM drive 230 may use, for example, an integrated driveelectronics (IDE) or serial advanced technology attachment (SATA)interface. Super I/O (SIO) device 236 may be connected to SB/ICH 204.

An operating system runs on processing unit 206. The operating systemcoordinates and provides control of various components within the dataprocessing system 200 in FIG. 2. As a client, the operating system maybe a commercially available operating system such as Microsoft® Windows7®. An object-oriented programming system, such as the Java™ programmingsystem, may run in conjunction with the operating system and providescalls to the operating system from Java™ programs or applicationsexecuting on data processing system 200.

As a server, data processing system 200 may be, for example, an IBMeServer™ System P® computer system, Power™ processor based computersystem, or the like, running the Advanced Interactive Executive (AIX®)operating system or the LINUX® operating system. Data processing system200 may be a symmetric multiprocessor (SMP) system including a pluralityof processors in processing unit 206. Alternatively, a single processorsystem may be employed.

Instructions for the operating system, the object-oriented programmingsystem, and applications or programs are located on storage devices,such as HDD 226, and may be loaded into main memory 208 for execution byprocessing unit 206. The processes for illustrative embodiments of thepresent invention may be performed by processing unit 206 using computerusable program code, which may be located in a memory such as, forexample, main memory 208, ROM 224, or in one or more peripheral devices226 and 230, for example.

A bus system, such as bus 238 or bus 240 as shown in FIG. 2, may becomprised of one or more buses. Of course, the bus system may beimplemented using any type of communication fabric or architecture thatprovides for a transfer of data between different components or devicesattached to the fabric or architecture. A communication unit, such asmodem 222 or network adapter 212 of FIG. 2, may include one or moredevices used to transmit and receive data. A memory may be, for example,main memory 208, ROM 224, or a cache such as found in NB/MCH 202 in FIG.2.

As mentioned above, in some illustrative embodiments the mechanisms ofthe illustrative embodiments may be implemented as application specifichardware, firmware, or the like, application software stored in astorage device, such as HDD 226 and loaded into memory, such as mainmemory 208, for executed by one or more hardware processors, such asprocessing unit 206, or the like. As such, the computing device shown inFIG. 2 becomes specifically configured to implement the mechanisms ofthe illustrative embodiments and specifically configured to perform theoperations and generate the outputs described hereafter with regard tothe mechanism for defining metrics thresholds for ranges using aparameterized line of text synchronized with an interactive userinterface.

Those of ordinary skill in the art will appreciate that the hardware inFIGS. 1 and 2 may vary depending on the implementation. Other internalhardware or peripheral devices, such as flash memory, equivalentnon-volatile memory, or optical disk drives and the like, may be used inaddition to or in place of the hardware depicted in FIGS. 1 and 2. Also,the processes of the illustrative embodiments may be applied to amultiprocessor data processing system, other than the SMP systemmentioned previously, without departing from the spirit and scope of thepresent invention.

Moreover, the data processing system 200 may take the form of any of anumber of different data processing systems including client computingdevices, server computing devices, a tablet computer, laptop computer,telephone or other communication device, a personal digital assistant(PDA), or the like. In some illustrative examples, data processingsystem 200 may be a portable computing device that is configured withflash memory to provide non-volatile memory for storing operating systemfiles and/or user-generated data, for example. Essentially, dataprocessing system 200 may be any known or later developed dataprocessing system without architectural limitation.

FIGS. 3A-3H show screens of display for a mechanism for defining metricsthresholds for ranges using a parameterized line of text synchronizedwith an interactive display in accordance with an illustrativeembodiment. The illustrative embodiments show possible interactions fordefining metrics and thresholds for alerts. The user sees avisualization/report in which the user selects a value. In the report,the following data are available:

a. Measures: Actual Cost, Production Target, Revenue

b. Time: Year, Month, Day

c. Other: Location, Products

The user selects a data cell within the visualization/report and invokesa “set alert” option, for example. This information is taken as“context” for defining the metric (in the example of FIG. 3A, thespecific location, the product and the measure).

With reference to FIG. 3A, display 310 presents a user interface fordefining thresholds for an alert for a selected data cell in a set ofdata. Display 300 shows the following:

-   -   a. The intersect name of the selected cell 312    -   b. A sentence structure in which the user can change parameters        for:        -   i. threshold direction 313        -   ii. a specific value or value based on other data items 314        -   iii. a time data item 315 specification to determine the            trend (if available)        -   iv. the value when the user should be warned 316    -   c. The current value from the selected data cell 320 and a        preview of what the current status is based on the definition        321    -   d. An interactive preview/visualization 317 in which the user        can change the structure and values

In the example shown in FIG. 3A, the data cell is for the value “actualcost” for furniture in North America. Display 310 presents aparameterized line of text 311, which presents a flexible sentencecomprising a plurality of parameters 312-316. The intersect name 312cannot be changed, because this is the initial measure from the selectedcell. The user can change the other parameters 313-316 in the flexiblesentence 311. FIG. 3B shows a menu for selecting a value for thethreshold direction 313. For example, the user may mouse over, click, orright-click on threshold direction 313. Alternatively, the user maymouse over, click, or right-click on threshold direction indicator 319in interactive visualization 317. Depending on the selection, thegraphical preview 317 will change.

Interactive visualization 317 shows ranges of values for the selecteddata cell with respect to an alert target threshold 322 and a warningthreshold 323. Control 318 allows the user to change the thresholddirection 313 from above target to below target.

FIG. 3C shows a display 330 in which the user defines a threshold for analert when the value for the data cell is below target with respect to aspecified value. FIG. 3D shows a display 340 in which the user defines athreshold for an alarm when the value for the data cell is below targetwith respect to a specified value. FIG. 3E shows a display 350 in whichthe user defines a threshold for an alarm when the value for the datacell is outside a target range. FIG. 3F shows a display 360 in which theuser defines a threshold for an alert when the value for the data cellis between target ranges.

As the user changes the threshold ranges type, the sentence adjustsitself to include the appropriate parameters. The parameters may includethe following:

a. Below or above: single value to compare against and a single momentto get warned. In the example shown in FIG. 3A, the value is “ProductionTarget” and the moment to get warned is “Warn me at Plan.”

b. Outside the target range or between the target range: two values tocompare against and two different moments to get warned. In the exampleshown in FIG. 3F, the two values to compare against are 4 and 80 and thetwo moments to get warned are between 4 and 10 and between 70 and 80.

As shown in FIG. 3G, the user can change the color bands in the ranges.The user may interact with graphical preview 370 to add a new colorrange 371. In accordance with the illustrative embodiments, the userinterface expands the flexible sentence such that the warning band isexpanded. For example, the flexible sentence may add a new warningmoment as follows: “Alter me when the latest ACTUAL COST is ABOVE TARGETof 3000 over Month. (Warn me at X and Y).”

Returning to FIG. 3A, switch control 318 is a shortcut to either switchthe threshold range types between “above target” and “below target” orbetween “outside target range” and “between target ranges.”

The user may also change the threshold values in the flexible sentenceand within the interactive graphical preview itself. FIG. 3H shows anexample drop-down menu 380 that may appear in response to the userinteracting with the threshold value or warning moment, such asthreshold value 314, warning moment 316, threshold target indicator 322,or warning moment indicator 323. Drop-down menu 380 includes a portion381 to enter a specific value. Alternatively, drop-down menu 380presents a menu 382 that allows the user to derive a threshold orwarning value from other data items (columns). The menu 382 may includea search control 383, which allows the user to search for a particulardata item if there are too many data items to list. Menu 382 may alsoinclude a list 384 of data items to be selected as the threshold orwarning value. In one embodiment, the user may select an option 385 thatallows the user to define a function of one or more data items as thethreshold or warning value. For example, the function may be apercentage of a data item or a function of multiple data items, such asa sum of two data items.

FIG. 4 is a block diagram of an alert system for defining metricsthresholds for ranges using a parameterized line of text synchronizedwith an interactive user interface in accordance with an illustrativeembodiment. A user selects data cell 402 from other data items from anavailable data set 401. Alert system 410 receives the selection of datacell 402 and generates context description 411 based on the selecteddata cell 402 and other data items from available data set 401.

Alert system 410 presents a user interface including flexible sentenceof threshold and warning definition portion 420 and interactive displayof threshold ranges and values portion 430. The flexible sentenceportion 420 presents a plurality of parameters including data cellmeasure 421, threshold range type 422, alert threshold values 423,time/trend 424, and warning points 425. Interactive display of thresholdranges and values portion 430 presents an interactive graphical previewincluding range directions 431, ranges/color bands 432, and thresholdvalues 433.

Changes made in flexible sentence of threshold and warning definition420 affect the interactive graphical preview displayed by interactivedisplay of threshold ranges and values portion 430. For example, achange to the threshold range type 422 affects range directions 431 andranges/color bands 432. Changes made to the interactive graphicalpreview displayed by the interactive display of threshold ranges andvalues portion 430 affect the flexible sentence in flexible sentence ofthreshold and warning definition portion 420. For examples, a change tothe threshold values 433 affects alert threshold values 423 and warningpoints 425.

Alert system 410 generates alert code 440 based on the definition. Alertcode 440 generates a warning if the value of data cell 402 reaches oneof warning points 425 and generates an alert if the value of data cell402 reaches one of alert threshold values 423.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Java, Smalltalk, C++ or the like,and conventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

FIG. 5 is a flowchart illustrating operation of an alert system fordefining metrics thresholds for ranges using a parameterized line oftext synchronized with an interactive user interface in accordance withan illustrative embodiment. Operation begins (block 500), and the alertsystem presents a flexible sentence structure of an alert threshold andwarning definition (block 501). The flexible sentence structure includesa plurality of parameters including the intersect name of the selecteddata cell, a threshold direction, a specified value or value based onother data items, a time data item specification to determine a trend,and a warning point value.

The alert system presents an interactive display of threshold ranges andvalues (block 502). The interactive display of threshold ranges andvalues includes a plurality of color bands, a range direction indicator,one or more alert threshold value indicators, and one or more warningpoint indicators.

The alert system receives a value from the selected data cell (block503). The alert system presents the current value or latest data pointfor the selected data cell (block 504), determines a trend (block 505),and presents the trend in the interactive display (block 506).

The alert system determines whether the user changes a parameter in theflexible sentence structure or interactive display (block 507). If theuser changes a parameter, the alert system makes the change to theflexible sentence structure and interactive display (block 508).Thereafter, or if the user does not change a parameter in block 507, thealert system determines whether the user is finished defining metricsthresholds (block 509). If the user is not finished, the operationreturns to block 507 to determine whether the user changes a parameter.

If the user is finished defining metrics thresholds in block 509, thenthe alert system generates code that creates warnings and alertsaccording to the user's metrics threshold definitions (block 510).Thereafter, operation ends (block 511).

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

As noted above, it should be appreciated that the illustrativeembodiments may take the form of an entirely hardware embodiment, anentirely software embodiment or an embodiment containing both hardwareand software elements. In one example embodiment, the mechanisms of theillustrative embodiments are implemented in software or program code,which includes but is not limited to firmware, resident software,microcode, etc.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers. Network adapters mayalso be coupled to the system to enable the data processing system tobecome coupled to other data processing systems or remote printers orstorage devices through intervening private or public networks. Modems,cable modems and Ethernet cards are just a few of the currentlyavailable types of network adapters.

The description of the present invention has been presented for purposesof illustration and description, and is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the describedembodiments. The embodiment was chosen and described in order to bestexplain the principles of the invention, the practical application, andto enable others of ordinary skill in the art to understand theinvention for various embodiments with various modifications as aresuited to the particular use contemplated. The terminology used hereinwas chosen to best explain the principles of the embodiments, thepractical application or technical improvement over technologies foundin the marketplace, or to enable others of ordinary skill in the art tounderstand the embodiments disclosed herein.

What is claimed is:
 1. A method, in a data processing system, fordefining metrics thresholds, the method comprising: presenting aflexible sentence structure in a user interface, wherein the flexiblesentence structure includes a plurality of parameters for defining analert for a selected data cell, wherein the parameters include anintersect name of the selected data cell, a threshold range type, andone or more alert threshold values; presenting an interactive graphicaldisplay in the user interface, wherein the interactive graphical displayincludes a plurality of range bands and one or more threshold valueindicators corresponding to the parameters of the flexible sentencestructure; making changes to the flexible sentence structure and theinteractive graphical display responsive to a user interaction to form ametrics threshold definition; and generating code that creates alertsaccording to the metrics threshold definition.
 2. The method of claim 1,wherein the threshold range type comprises a below target range type oran above target range type, wherein the parameters include a singlealert threshold value, and wherein the interactive graphical displayincludes a range direction indicator corresponding to the thresholdrange type.
 3. The method of claim 2, wherein the parameters include awarning point value and wherein the interactive graphical displayincludes a warning point value indicator corresponding to the warningpoint value.
 4. The method of claim 2, wherein the single alertthreshold value is specified by the user or based on another data item.5. The method of claim 2, wherein the single alert threshold value is afunction of at least one other data item.
 6. The method of claim 2,further comprising: presenting a switch control in the user interface;and switching the threshold range type from below target range type toabove target range type or from above target range type to below targetrange type responsive to the user interaction with the switch control.7. The method of claim 1, wherein the threshold range type comprises anoutside target range type or a between target ranges type, wherein theparameters include a pair of alert threshold values defining a range,and wherein the interactive graphical display includes a range directionindicator for each of the pair of alert threshold values andcorresponding to the threshold range type.
 8. The method of claim 7,wherein the parameters include a pair of warning point value ranges andwherein the interactive graphical display includes a warning point valueindicator corresponding each of the pair of warning point value ranges.9. The method of claim 7, further comprising: presenting a switchcontrol in the user interface; and switching the threshold range typefrom outside target range type to between target ranges type or frombetween target ranges type to outside target range type responsive tothe user interaction with the switch control.
 10. The method of claim 1,wherein the parameters include a time data item specification todetermine a trend, the method further comprising: receiving a value ofthe selected data cell; determining the trend of the selected data cellover a time period specified by the time data item specification; andpresenting the value of the selected data cell and a trend indicatorrepresenting the trend of the selected data cell.
 11. The method ofclaim 1, further comprising making changes to the flexible sentencestructure responsive to the user making changes to the interactivegraphical display.
 12. The method of claim 1, further comprising makingchanges to the interactive graphical display responsive to the usermaking changes to the flexible sentence structure.
 13. A computerprogram product comprising a non-transitory computer readable storagemedium having a computer readable program stored therein, wherein thecomputer readable program, when executed on a computing device, causesthe computing device to: present a flexible sentence structure in a userinterface, wherein the flexible sentence structure includes a pluralityof parameters for defining an alert for a selected data cell, whereinthe parameters include an intersect name of the selected data cell, athreshold range type, and one or more alert threshold values; present aninteractive graphical display in the user interface, wherein theinteractive graphical display includes a plurality of range bands andone or more threshold value indicators corresponding to the parametersof the flexible sentence structure; make changes to the flexiblesentence structure and the interactive graphical display responsive to auser interaction to form a metrics threshold definition; and generatecode that creates alerts according to the metrics threshold definition.14. The computer program product of claim 13, wherein the thresholdrange type comprises a below target range type or an above target rangetype, wherein the parameters include a single alert threshold value, andwherein the interactive graphical display includes a range directionindicator corresponding to the threshold range type.
 15. The computerprogram product of claim 14, wherein the parameters include a warningpoint value and wherein the interactive graphical display includes awarning point value indicator corresponding to the warning point value.16. The computer program product of claim 14, wherein the computerreadable program further causes the computing device to: present aswitch control in the user interface; and switch the threshold rangetype from below target range type to above target range type or fromabove target range type to below target range type responsive to theuser interaction with the switch control.
 17. The computer programproduct of claim 13, wherein the threshold range type comprises anoutside target range type or a between target ranges type, wherein theparameters include a pair of alert threshold values defining a range,and wherein the interactive graphical display includes a range directionindicator for each of the pair of alert threshold values andcorresponding to the threshold range type.
 18. The computer programproduct of claim 17, wherein the parameters include a pair of warningpoint value ranges and wherein the interactive graphical displayincludes a warning point value indicator corresponding each of the pairof warning point value ranges.
 19. The computer program product of claim17, wherein the computer readable program further causes the computingdevice to: present a switch control in the user interface; and switchthe threshold range type from outside target range type to betweentarget ranges type or from between target ranges type to outside targetrange type responsive to the user interaction with the switch control.20. An apparatus comprising: a processor; and a memory coupled to theprocessor, wherein the memory comprises instructions which, whenexecuted by the processor, cause the processor to: present a flexiblesentence structure in a user interface, wherein the flexible sentencestructure includes a plurality of parameters for defining an alert for aselected data cell, wherein the parameters include an intersect name ofthe selected data cell, a threshold range type, and one or more alertthreshold values; present an interactive graphical display in the userinterface, wherein the interactive graphical display includes aplurality of range bands and one or more threshold value indicatorscorresponding to the parameters of the flexible sentence structure; makechanges to the flexible sentence structure and the interactive graphicaldisplay responsive to a user interaction to form a metrics thresholddefinition; and generate code that creates alerts according to themetrics threshold definition.